package zredis

import (
	"github.com/gomodule/redigo/redis"
	"venus/util/zjson"
)

// HSetData HSetData
func HSetData(value IData) error {
	conn, err := GetConn()
	if err != nil {
		return err
	}
	defer autoClose(conn)

	_, err = conn.Do("HSET", value.TableName(), value.DbKey(), value.ToString())
	return err
}

// HGetData HSetData
func HGetData(value IData) IData {
	conn, err := GetConn()
	if err != nil {
		return nil
	}
	defer autoClose(conn)

	text, err := redis.String(conn.Do("HGET", value.TableName(), value.DbKey()))
	if err == nil {
		errJson := zjson.Obj(text, value)
		if errJson != nil {
			return nil
		}
	}
	return value
}
